package org.gap.domain;

import java.io.Serializable;

import java.lang.StringBuilder;

import java.util.Set;

import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

import javax.xml.bind.annotation.*;

import javax.persistence.*;

/**
 */
@IdClass(org.gap.domain.UtilisateursGroupePK.class)
@Entity
@NamedQueries({
		@NamedQuery(name = "findAllUtilisateursGroupes", query = "select myUtilisateursGroupe from UtilisateursGroupe myUtilisateursGroupe"),
		@NamedQuery(name = "findUtilisateursGroupeByPrimaryKey", query = "select myUtilisateursGroupe from UtilisateursGroupe myUtilisateursGroupe where myUtilisateursGroupe.ugrGroupe = ?1 and myUtilisateursGroupe.ugrUser = ?2"),
		@NamedQuery(name = "findUtilisateursGroupeByUgrGroupe", query = "select myUtilisateursGroupe from UtilisateursGroupe myUtilisateursGroupe where myUtilisateursGroupe.ugrGroupe = ?1"),
		@NamedQuery(name = "findUtilisateursGroupeByUgrGroupeContaining", query = "select myUtilisateursGroupe from UtilisateursGroupe myUtilisateursGroupe where myUtilisateursGroupe.ugrGroupe like ?1"),
		@NamedQuery(name = "findUtilisateursGroupeByUgrUser", query = "select myUtilisateursGroupe from UtilisateursGroupe myUtilisateursGroupe where myUtilisateursGroupe.ugrUser = ?1"),
		@NamedQuery(name = "findUtilisateursGroupeByUgrUserContaining", query = "select myUtilisateursGroupe from UtilisateursGroupe myUtilisateursGroupe where myUtilisateursGroupe.ugrUser like ?1") })
@Table(schema = "GAP", name = "UTILISATEURS_GROUPE")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "GAP_v2/org/gap/domain", name = "UtilisateursGroupe")
public class UtilisateursGroupe implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 */

	@Column(name = "UGR_GROUPE", length = 10, nullable = false)
	@Basic(fetch = FetchType.EAGER)
	@Id
	@XmlElement
	String ugrGroupe;
	/**
	 */

	@Column(name = "UGR_USER", length = 10, nullable = false)
	@Basic(fetch = FetchType.EAGER)
	@Id
	@XmlElement
	String ugrUser;

	/**
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({ @JoinColumn(name = "UGR_USER", referencedColumnName = "USR_USER", nullable = false, insertable = false, updatable = false) })
	@XmlTransient
	Utilisateurs utilisateurs;

	/**
	 */
	public void setUgrGroupe(String ugrGroupe) {
		this.ugrGroupe = ugrGroupe;
	}

	/**
	 */
	public String getUgrGroupe() {
		return this.ugrGroupe;
	}

	/**
	 */
	public void setUgrUser(String ugrUser) {
		this.ugrUser = ugrUser;
	}

	/**
	 */
	public String getUgrUser() {
		return this.ugrUser;
	}

	/**
	 */
	public void setUtilisateurs(Utilisateurs utilisateurs) {
		this.utilisateurs = utilisateurs;
	}

	/**
	 */
	public Utilisateurs getUtilisateurs() {
		return utilisateurs;
	}

	/**
	 */
	public UtilisateursGroupe() {
	}

	/**
	 * Copies the contents of the specified bean into this bean.
	 *
	 */
	public void copy(UtilisateursGroupe that) {
		setUgrGroupe(that.getUgrGroupe());
		setUgrUser(that.getUgrUser());
		setUtilisateurs(that.getUtilisateurs());
	}

	/**
	 * Returns a textual representation of a bean.
	 *
	 */
	public String toString() {

		StringBuilder buffer = new StringBuilder();

		buffer.append("ugrGroupe=[").append(ugrGroupe).append("] ");
		buffer.append("ugrUser=[").append(ugrUser).append("] ");

		return buffer.toString();
	}

	/**
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = (int) (prime * result + ((ugrGroupe == null) ? 0 : ugrGroupe.hashCode()));
		result = (int) (prime * result + ((ugrUser == null) ? 0 : ugrUser.hashCode()));
		return result;
	}

	/**
	 */
	public boolean equals(Object obj) {
		if (obj == this)
			return true;
		if (!(obj instanceof UtilisateursGroupe))
			return false;
		UtilisateursGroupe equalCheck = (UtilisateursGroupe) obj;
		if ((ugrGroupe == null && equalCheck.ugrGroupe != null) || (ugrGroupe != null && equalCheck.ugrGroupe == null))
			return false;
		if (ugrGroupe != null && !ugrGroupe.equals(equalCheck.ugrGroupe))
			return false;
		if ((ugrUser == null && equalCheck.ugrUser != null) || (ugrUser != null && equalCheck.ugrUser == null))
			return false;
		if (ugrUser != null && !ugrUser.equals(equalCheck.ugrUser))
			return false;
		return true;
	}
}
